279. 完全平方数

279. 完全平方数

Similar Question

Solution Tips

方案一: 完全背包

var numSquares = function(n) {
    // 也是完全背包的题目
    // target 即是 n
    // 可选的物品即是完全平方数的集合, 然后是有一个上界的 也是 n 自身
    // 12 只可能由 1 2 4 9 组成
    const dp = Array.from({ length: n + 1 }, () => 100000);
    dp[0] = 0;
    for (let i = 1; i * i <= n ; i++) {
        // amount
        for (let j = i * i; j <= n; j++) {
            const item = i * i;
            // 不选择 item 和 选择了 item
            dp[j] = Math.min(dp[j], dp[j - item] + 1);
        }
    }

    return dp[n];
};